Skip to content

librdmacm/preload.c: fix duplicate symbol definitions on armhf#1746

Merged
rleon merged 1 commit into
linux-rdma:masterfrom
hector-cao:fix-preload-build-error
Jun 9, 2026
Merged

librdmacm/preload.c: fix duplicate symbol definitions on armhf#1746
rleon merged 1 commit into
linux-rdma:masterfrom
hector-cao:fix-preload-build-error

Conversation

@hector-cao

Copy link
Copy Markdown
Contributor

85f9747 introduces the preload of fcntl64 and it fails to build on armhf:

Assembler messages:
Error: symbol __fcntl_time64' is already defined Error: symbol sendfile64' is already defined

On armhf, glibc defines both fcntl64 and fcntl as alias to __fcntl_time64. As a consequence, in preload.c, 2 function definitions of fcntl64 and fcntl are preprocessed to become the same function __fcntl_time64 definition, that cause the double symbol error.

Only define and intercept these functions if they are not already defined.

This fixes the issue both for sendfile64 and fcntl64.

@hector-cao hector-cao force-pushed the fix-preload-build-error branch 3 times, most recently from 621bd3d to d8e37c3 Compare June 2, 2026 12:08
@rleon

rleon commented Jun 7, 2026

Copy link
Copy Markdown
Member

Please add Fixes line above your Signed-off-by:

Fixes: 85f9747 ("librdmacm: Add support for fcntl64")

85f9747 introduces the preload of fcntl64 and it fails to build on armhf:

Assembler messages:
 Error: symbol `__fcntl_time64' is already defined
 Error: symbol `sendfile64' is already defined

On armhf (and potentially other 32 bits systems), glibc directs fcntl64
and fcntl to the same symbol name. preload.c defines both fcntl and fcntl64
and these 2 implementations are in fact tight to the same symbol, that causes
the double symbol error.

So only provide the definition of both fcntl and fcntl64 if they are 2
separate symbols.

This fixes the issue both for sendfile64 and fcntl64.

Fixes: 85f9747 ("librdmacm: Add support for fcntl64")
Signed-off-by: Hector Cao <hector.cao@canonical.com>
@hector-cao hector-cao force-pushed the fix-preload-build-error branch from d8e37c3 to d20d0da Compare June 9, 2026 13:14
@hector-cao

Copy link
Copy Markdown
Contributor Author

Fixes: 85f9747 ("librdmacm: Add support for fcntl64")

done, thanks

@rleon rleon merged commit e56695b into linux-rdma:master Jun 9, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants